﻿#pragma once
//【头文件包含】
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>


//【自定义配置】
//#define DEFAULT_NUMS 4  //动态单链表默认初设创建空间元素大小
typedef int SGLDataType;


//【结构声明】
typedef struct SingleListNode //单链表结构体
{
	SGLDataType data;//指本空间元素
	struct SingleListNode* next;//表示下一个空间的地址
}SGLN;




//【函数声明】【接口函数】
void SingleListPrint(SGLN* phead);//单链表打印
SGLN* SingleListNewMember(SGLDataType x);//单链表创建新成员



void SingleListPushBack(SGLN** pphead,SGLDataType x);//单链表尾部插入
void SingleListPopBack(SGLN** pphead);//单链表尾部删除
void SingleListPushFront(SGLN** pphead, SGLDataType x);//单链表头部插入
void SingleListPopFront(SGLN** pphead);//单链表头部删除

SGLN* SingleListFind(SGLN* phead, SGLDataType x);//单链表查找元素
void SingleListInsert(SGLN** pphead, SGLN* pos, SGLDataType x);//单链表指定位置插入

void SingleListErase(SGLN** pphead, SGLN* pos);//单链表指定位置删除
void SingleListDestory(SGLN** pphead);//单链表动态内存空间销毁
void SingleListInsertAfter(SGLN* pos, SGLDataType x);//单链表指定位置后插入
void SingleListInit();//单链表初始化

